1. Field of the Invention
The present invention relates to design, development and testing of complex digital circuits. In particular the present invention relates to a hardware emulation of complex digital circuits, e.g. a microprocessor.
2. Discussion of the Related Art
In developing a complex integrated circuit, e.g. a microprocessor, hardware emulation is a useful technique to test and debug a design. In hardware emulation, the integrated circuit's logic design is compiled, using various automated tools, into a logic circuit which can be implemented in an hardware emulation system, such as any one of the hardware emulation systems available from Quickturn Systems, Inc., Mountain View, Calif. Such an emulation system consists primarily of a "breadboard" of field programmable gate arrays (FPGAs), and software for programming and controlling the breadboard to emulate the desired logic circuit. An integrated circuit emulated on such a breadboard is effectively an operating working model of the final integrated circuit, and thus can be used reliably to validate the design, by running actual software targeted for the integrated circuit. For example, a developer of an X86 compatible microprocessor would connect the emulation circuit into a system board and debug the design by running on the emulation circuit programs compiled for an X86 compatible microprocessor. When used in this manner, the emulation circuit is said to be "fast simulating" the X86 microprocessor. However, even though hardware emulation provides the fastest means to emulate an integrated circuit, the emulated design still runs hundreds of time slower than the actual integrated circuit it emulates. For example, an emulation circuit for a 200 Megahertz microprocessor can be emulated only at 500 Kilohertz.
With such discrepancy in speed, while it is possible to execute the target software, the process can be extremely frustrating to the development engineer. For example, at the beginning of a design cycle, design errors often lead to hard errors, or "hard crashes", that require the emulated circuit to reset ("reboot"). A reboot sequence includes reinitializing the system and loading an operating system, e.g. DOS or Windows NT.sup.1. However, because of the speed discrepancy, a reboot sequence that takes less than a minute in the target microprocessor can take hours on an emulated circuit, thereby limiting the usefulness of the emulating circuit. FNT .sup.1 "DOS" and "Windows NT" are believed trademarks of Microsoft Corporation, Redmond, Wash.
Thus, a method and an apparatus that would allow the emulation circuit to begin execution from an intermediate execution point in a program sequence without requiring the emulation circuit to perform the time-consuming execution sequence to arrive at the same execution point is desired. Preferably, the intermediate execution point can be specified to a particular instruction boundary.